The Internet is becoming increasingly exploited by users and consumers for sharing multimedia data such as personal photos or videos. Another growing trend is the use of Internet applications for building what is commonly referred to as “mashups”. A mash up refers to multimedia data composed of various multimedia fragments often taken from different data sources.
For example, a multimedia mash up may be built from distributed pieces of multimedia, such as videos, located at different data sources such as Internet servers (e.g. video sharing site, personal Web site, Cloud services, company service, . . . ), by concatenation of different temporal video segments from the different data sources.
The various multimedia segments may be downloaded using an addressing scheme identifying the location of the data source. In 2008, W3C initiated a standardization process for specifying an addressing scheme based on a traditional uniform resource identifier (URI) mechanism. URI is an addressing scheme used to identify resources on the Internet and also provides features for addressing sub parts of a multimedia resource using what is often referred to as a “fragment identifier”.
Streaming multimedia data by HTTP (hypertext transfer protocol) is becoming more popular for various reasons. Firstly, more and more video content is being stored on the Internet. Secondly, an HTTP communication server is easier to set up than an RTP/RTSP communication server traditionally used for video streaming. Another reason for the popularity of http for streaming multimedia is due to the success of portable devices such as smart phones and tablet devices that provide Internet and media experience to their mobile users.
Current HTTP streaming is based on a pull model in which the client pulls a sequence of chunks of data, one after another, from a server, based on a manifest file (description) produced by the server describing currently available chunks or segments of data.
A problem often encountered when playing concatenated video data on a display device is ensuring that enough data is available when moving from one video segment to another to enable smooth transitions between the various segments without freezing of the display. This is particularly true because of the differences between the servers storing the video data segments used to build the mash up. As an example, a major video sharing site may be provided with powerful, fast servers while a personal video album stored on a personal computer may have a limited upload link.